package com.zenithmind.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zenithmind.user.pojo.domain.Role;
import com.zenithmind.user.pojo.domain.RolePermission;
import com.zenithmind.user.pojo.query.RoleQuery;
import com.zenithmind.user.pojo.vo.RoleVO;
import com.zenithmind.common.result.PageResult;

import java.util.List;

/**
 * 角色表(Role)服务接口
 *
 * @author makejava
 * @since 2025-04-11 20:36:08
 */
public interface RoleService extends IService<Role> {
    
    PageResult<RoleVO> page(RoleQuery roleQuery);
    
    void assignPermission(RolePermission rolePermission);
    
    RoleVO getRoleById(String id);
    
    List<RoleVO> listRoles();
    
    /**
     * 批量分配权限给角色
     * 
     * @param roleId 角色ID
     * @param permissionIds 权限ID列表
     */
    void assignBatchPermissions(String roleId, List<String> permissionIds);
    
    /**
     * 获取角色的权限ID列表
     * 
     * @param roleId 角色ID
     * @return 角色拥有的权限ID列表
     */
    List<String> getRolePermissionIds(String roleId);
}
